home *** CD-ROM | disk | FTP | other *** search
/ Floppyshop 2 / Floppyshop - 2.zip / Floppyshop - 2.iso / diskmags / 5791-.end / dmg-6017 / thing_av.txt < prev    next >
Text File  |  1995-12-31  |  35KB  |  949 lines

  1. Thing implementation of the AV and other protocols             January 1996
  2. ===========================================================================
  3.  
  4. Copyright (c) Joe Connor 1995
  5. Copyright (c) Arno Welzel 1995
  6.  
  7. This English documentation was loosely translated by Joe Connor who 
  8. translates and supports Thing and many German programs in the UK via the 
  9. InterActive shareware scheme. Some information about Thing is included 
  10. following the end of the translation, for more details contact:
  11.  
  12. Post:  InterActive, 65 Mill Road, Colchester, Essex, CO4 5LJ, England
  13. Email: jconnor@cix.compulink.co.uk
  14.  
  15. The text is an edited extract of the Thing documentation and is not a 
  16. complete (or necessarily accurate) description of the protocols covered.
  17. The Thing v1.x distribution contains all the information in this document 
  18. along with lots of other useful information in ST-Guide hypetext format so 
  19. grab a copy today!
  20.  
  21. This document may be freely distributed so long as this header remains 
  22. intact and complete but must under no circumstances be reproduced either 
  23. electronically or in printed form without the express written permission 
  24. of the copyright holders.
  25.  
  26. We accept no liability or responsibility for any direct or indirect damage 
  27. that may arise, either financial, material or any other kind from either 
  28. the use or misuse of this document. All trademarks used are recognised and 
  29. acknowledged.
  30. ---------------------------------------------------------------------------
  31.  
  32. Protocols covered:
  33.  - AV protocol
  34.  - Font protocol
  35.  - Drag&Drop
  36.  
  37.  
  38. AV Protocol
  39. ===========================================================================
  40. The AV protocol was developed for use with the Gemini replacement desktop. 
  41. Gemini comprises a desktop, Venus, and a command line called Mupfel. In 
  42. order for Venus to communicate with desktop accessories the AV protocol 
  43. was developed and is widely supported today:
  44.  
  45. AV ~ Accessory <-> Venus
  46.  
  47. Thing supports most of the AV protocol defined up to 26th June 1995 and as 
  48. a consequence is an excellent 'AV Server' which improves the functionality 
  49. of your desktop accessories and operation under a multitasking OS. 
  50.  
  51. In the following description Thing acts as the 'Server' and accessories 
  52. and applications are 'Clients'.
  53.  
  54. In order to use Thing as an AV Server under a multitasking environment you 
  55. must set an environmental variable for Thing called AVSERVER. This is done 
  56. as follows:
  57.  
  58. MagiC
  59. -----
  60. Entry '#_ENV AVSERVER=THING' in the file MAGX.INF (must be added before 
  61. '#_CTR'!)
  62.  
  63. MultiTOS
  64. --------
  65. Entry 'setenv AVSERVER=THING' in the file MINT.CNF
  66.  
  67. The following AV functions are supported by Thing:
  68.  
  69.   AV_PROTOKOLL        AV_SENDKEY             VA_PATH_UPDATE
  70.   AV_ASKFILEFONT      AV_ASKCONFONT          VA_FONTCHANGED
  71.   AV_OPENWIND         AV_STARTPROG
  72.   AV_ACCWINDOPEN      AV_ACCWINDCLOSED
  73.   AV_STATUS           AV_GETSTATUS
  74.   AV_COPY_DRAGGED     AV_PATH_UPDATE
  75.   AV_WHAT_IZIT        AV_DRAG_ON_WINDOW
  76.   AV_EXIT             AV_STARTED
  77.   AV_XWIND            AV_VIEW
  78.   AV_FILEINFO         AV_COPYFILE
  79.   AV_DELFILE          AV_SETWINDPOS
  80.  
  81. Some tips for implementation of the AV protocol in your own programs:
  82. ---------------------------------------------------------------------------
  83. - Under Single TOS only the (main-)application 0 can act as AV server.
  84.   In a multitasking environment, like MagiC or MultiTOS, you have to check 
  85.   the presence of an AV server by checking the environmental variable 
  86.   AVSERVER.
  87.  
  88. - Once a program uses the AV_PROTOKOLL, it must use AV_EXIT before 
  89.   terminating!
  90.  
  91. - A program should always wait for the return of VA_PROTOSTATUS before 
  92.   using any other AV_... messages! It may be, that the current server does 
  93.   not provide all messages of the AV protocol!
  94.  
  95. - All memory blocks, which are used to pass file names, parameters etc. 
  96.   MUST be allocated 'global' when running under MultiTOS!!!
  97.   Tip! Mxalloc(<size>,0x42)). Otherwise memory violations will occur!
  98.  
  99. - All file names and folder names must be with complete path names.
  100.   (e.g. 'i:\test.txt').
  101.  
  102. - If the server supports file name 'quoting' they can be enclosed in 
  103.   quotation marks. If a quotation mark is part of the file name, it has to 
  104.   be repeated once:
  105.  
  106.    d:\letter to moni    becomes   'd:\letter to moni'
  107.    d:\peter's picture   becomes   'd:\peter''s picture'
  108.  
  109. - If there is more than one file/folder name, the names should be 
  110.   separated using a single space (ASCII character 32).
  111.  
  112. - Folder names must be terminated with a backslash ('\' - ASCII 92)
  113.   e.g. 'i:\letters\' (even Gemini 1.a doens't seem to do this)!
  114.  
  115. - To provide 'global' 'window cycling', AV clients should send [Control]+W 
  116.   to the server via the AV_SENDKEY message.
  117.  
  118.  
  119. AV Protocol, AV_PROTOKOLL
  120. ---------------------------------------------------------------------------
  121. AV_PROTOKOLL (0x4700) Server <- Client (26th June 1995)
  122.  
  123. A client asks the server which functions of the AV protocol it supports. 
  124. The server replies by sending a VA_PROTOSTATUS message.
  125.  
  126.   Word 3:   Bit 0: VA_SETSTATUS
  127.             Bit 1: VA_START
  128.             Bit 2: AV_STARTED
  129.             Bit 3: VA_FONTCHANGED
  130.             Bit 4: Provides and uses file name quoting
  131.             Bit 5: VA_PATH_UPDATE
  132.             Bit 6-15: Reserved, always 0
  133.   Word 4:   Reserved, always 0
  134.   Word 5:   Reserved, always 0
  135.   Word 6+7: Pointer to the name, which has to be used for appl_find()
  136.             to get the AES ID of the client. (8 characters long and
  137.             null terminated).
  138.  
  139.  
  140. AV Protocol, VA_PROTOSTATUS
  141. ---------------------------------------------------------------------------
  142.  
  143. VA_PROTOSTATUS (0x4701) Server -> Client (26th June 1995)
  144.  
  145. Reply sent in answer to an AV_PROTOKOLL enquiry from the client. The 
  146. reply, in the form of a status word, reports which functions of the AV 
  147. protocol Thing supports. Greyed out entries will never be supported by 
  148. Thing.
  149.  
  150.   Word 3:   Bit 0:  AV_SENDKEY
  151.             Bit 1:  AV_ASKFILEFONT
  152.             Bit 2:  AV_ASKCONFONT, AV_OPENCONSOLE
  153.             Bit 3:  AV_ASKOBJECT
  154.             Bit 4:  AV_OPENWIND
  155.             Bit 5:  AV_STARTPROG
  156.             Bit 6:  AV_ACCWINDOPEN, AV_ACCWINDCLOSED
  157.             Bit 7:  AV_STATUS, AV_GETSTATUS
  158.             Bit 8:  AV_COPY_DRAGGED
  159.             Bit 9:  AV_PATH_UPDATE, AV_WHAT_IZIT, AV_DRAG_ON_WINDOW
  160.             Bit 10: AV_EXIT
  161.             Bit 11: AV_XWIND
  162.             Bit 12: VA_FONTCHANGED
  163.             Bit 13: AV_STARTED
  164.             Bit 14: Provides and uses file name quoting
  165.             Bit 15: AV_FILEINFO, VA_FILECHANGED
  166.   Word 4:   Bit 0:  AV_COPYFILE, VA_FILECOPIED
  167.             Bit 1:  AV_DELFILE, VA_FILEDELETED
  168.             Bit 2:  AV_VIEW, VA_VIEWED
  169.             Bit 3:  AV_SETWINDPOS
  170.             Bit 4-15: Reserved, always 0
  171.   Word 5:   Reserved, always 0
  172.   Word 6+7: Pointer to the program names of the servers, prepared for
  173.             appl_find() (8 characters long and null terminated).
  174.  
  175.  
  176. AV Protocol, AV_GETSTATUS
  177. ---------------------------------------------------------------------------
  178.  
  179. AV_GETSTATUS (0x4703) Server <- Client (11th November 1994)
  180.  
  181. Requests the status information saved using AV_STATUS. A VA_SETSTATUS 
  182. message is sent as a reply.
  183.  
  184.   No parameters
  185.  
  186.  
  187. AV Protocol, AV_STATUS
  188. ---------------------------------------------------------------------------
  189.  
  190. AV_STATUS (0x4704) Server <- Client (11th November 1994)
  191.  
  192. Using this message a client can tell the server any status information 
  193. (presets etc) it might need again. Thing saves this information as a 
  194. component of its setup in THING.INF.
  195.  
  196. This function is primarily useful for desktop accessories because single 
  197. TOS is (at best) equipped with ustable buffers!
  198.  
  199.   Word 3+4: Pointer to a string up to 256 characters long which may not
  200.             contain any control characters.
  201.  
  202.  
  203. AV Protocol, AV_SETSTATUS
  204. ---------------------------------------------------------------------------
  205.  
  206. VA_SETSTATUS (0x4705) Server -> Client (11th November 1994)
  207.  
  208. Reply to a AV_GETSTATUS message. Thing shares the previously saved status 
  209. information with the client.
  210.  
  211.   Word 3+4: Pointer to the saved string or NULL if no information is
  212.             available.
  213.  
  214.  
  215. AV Protocol, AV_SENDKEY
  216. ---------------------------------------------------------------------------
  217.  
  218. AV_SENDKEY (0x4710) Server <- Client (11th Nov 1994)
  219.  
  220. Using this message a client can send Thing any keys it doesn't use for 
  221. itself.
  222.  
  223. Note: Thing and Gemini accept [Control]+W to perform 'global' window 
  224. cycling, which takes into account the open windows of any AV clients. The 
  225. key state (ev_mmokstate) is 0x0004, the scan code (ev_mkreturn) is 0x1107.
  226.  
  227.   Word 3: Key state (ev_mmokstate)
  228.   Word 4: Scan code of the pressed key (ev_mkreturn)
  229.  
  230.  
  231. AV Protocol, VA_START
  232. ---------------------------------------------------------------------------
  233.  
  234. VA_START (0x4711) Server -> Client (11th November 1994)
  235.  
  236. Using this message a server pass parameters to desktop accessories or 
  237. parallel running applications.
  238.  
  239. An exceptional feature: Thing can receive VA_START messages too. In the 
  240. command line an individual program or file can be passed. Installed 
  241. applications are also taken into account.
  242.  
  243. Command lines beginning with the ':' character must not be used because 
  244. they are interpreted as internal commands!
  245.  
  246.   Word 3+4: Pointer to the command line. Objects dragged to icons using
  247.             Drag&Drop require the entire filename, i.e. path, filename
  248.             and trailing backslash '\' character.
  249.  
  250.  
  251. AV Protocol, AV_ASKFILEFONT
  252. ---------------------------------------------------------------------------
  253.  
  254. AV_ASKFILEFONT (0x4712) Server <- Client (11th November 1994)
  255.  
  256. Using this message the client can request the current font used for 
  257. filenames in directory windows. The server the ID and size (in points) of 
  258. the font with a VA_FILEFONT message.
  259.  
  260. Also refer to VA_FONTCHANGED for more details.
  261.  
  262.   No parameters
  263.  
  264. AV Protocol, VA_FILEFONT
  265. ---------------------------------------------------------------------------
  266.  
  267. VA_FILEFONT (0x4713) Server -> Client (11th November 1994)
  268.  
  269. Reply to AV_ASKFILEFONT. The server returns the ID and size (in points) of 
  270. the current font used for filenames in directory windows.
  271.  
  272. Also refer to VA_FONTCHANGED for more details.
  273.  
  274.   Word 3: ID of font (vst_font)
  275.   Word 4: Size in points (vst_point)
  276.  
  277.  
  278. AV Protocol, AV_ASKCONFONT
  279. ---------------------------------------------------------------------------
  280.  
  281. AV_ASKCONFONT (0x4714) Server <- Client (11. Nov 1994)
  282.  
  283. A client can request the current font used in the console window. The 
  284. server replies using a VA_CONFONT message the ID and size (in points) of 
  285. the font.
  286.  
  287. Also refer to VA_FONTCHANGED for more details.
  288.  
  289.   No parameters
  290.  
  291.  
  292. AV Protocol, VA_CONFONT
  293. ---------------------------------------------------------------------------
  294.  
  295. VA_CONFONT (0x4715) Server -> Client (11. Nov 1994)
  296.  
  297. Thing uses this message to answer AV_ASKCONFONT. Thing reports the font ID 
  298. and size (in points) of the current font used in the Console window.
  299.  
  300. Also refer to VA_FONTCHANGED for more details.
  301.  
  302.   Word 3: ID of font (vst_font)
  303.   Word 4: Size in points (vst_point)
  304.  
  305.  
  306. AV Protocol, AV_OPENWIND
  307. ---------------------------------------------------------------------------
  308.  
  309. AV_OPENWIND (0x4720) Server <- Client (11th November 1994)
  310.  
  311. Thing opens a new directory window.
  312.  
  313.   Word 3+4: Pointer to the path of the to open directories
  314.   Word 5+6: Pointer to the file mask. '*.*' is intrepreted as '*' (all
  315.             files) by Thing.
  316.  
  317.  
  318. AV Protocol, VA_WINDOPEN
  319. ---------------------------------------------------------------------------
  320.  
  321. VA_WINDOPEN (0x4721) Server -> Client (11th November 1994)
  322.  
  323. Thing answers client to AV_OPENWIND.
  324.  
  325.   Word 3: 0   = Error
  326.           !=0 = Window opened and directory updated
  327.  
  328.  
  329. AV Protocol, AV_STARTPROG
  330. ---------------------------------------------------------------------------
  331.  
  332. AV_STARTPROG (0x4722) Server <- Client (11th November 1994)
  333.  
  334. Thing starts a program at the request of a client.
  335.  
  336.   Word 3+4: Program name with complete path - optionally including the
  337.             filename. If the filename is included Thing searches for
  338.             the application and the filename then passes the filename,
  339.             as a parameter, to the application.
  340.   Word 5+6: Command line or NULL, if no command line is passed.
  341.   Word 7:   Any 16 Bit value, which VA_PROGSTART passes back
  342.  
  343.  
  344. AV Protocol, VA_PROGSTART
  345. ---------------------------------------------------------------------------
  346.  
  347. VA_PROGSTART (0x4723) Server -> Client (11th November 1994)
  348.  
  349. Reply to AV_STARTPROG enquiry. Thing always sends an answer immediately, 
  350. i.e. after the end of programs started under single TOS which are not 
  351. handled as accessories. Currently the Return code for started programs is 
  352. always 0.
  353.  
  354. If Thing ends before starting the program (e.g. Overlay mode under single 
  355. TOS or starting an application in single mode under MagiC) no answer 
  356. message is sent.
  357.  
  358. A client will always receive an error message if the program couldn't be 
  359. started.
  360.  
  361.   Word 3: 0   = Error
  362.           !=0 = Program started
  363.   Word 4: Return code of the program (where available)
  364.   Word 7: 16 Bit word from AV_STARTPROG
  365.  
  366.  
  367. AV Protocol, AV_ACCWINDOPEN
  368. ---------------------------------------------------------------------------
  369.  
  370. AV_ACCWINDOPEN (0x4724)  Server <- Client (11th November 1994)
  371.  
  372. A client uses this message to share with Thing the information that it has 
  373. opened a window. Thing can then extend Drag&drop and cycle window support 
  374. to cover this window.
  375.  
  376.   Word 3: AES handle for window
  377.  
  378.  
  379. AV Protocol, VA_DRAGACCWIND
  380. ---------------------------------------------------------------------------
  381.  
  382. VA_DRAGACCWIND (0x4725) Server -> Client (11th November 1994)
  383.  
  384. Thing sends an AV_ACCWINDOPEN message to the client sharing the 
  385. information that one or more object/s have been dragged to its window.
  386.  
  387. Refer to AV_COPY_DRAGGED for more details.
  388.  
  389. Note: Should the keyboard status for a further answer of the client (e.g. 
  390. AV_COPY_DRAGGED) become neccessary, it should, on receipt of 
  391. VA_DRAGACCWIND, check the value returned from evnt_multi().
  392.  
  393. i.e. the EVENT-structure should be ascertained using EvntMulti() and NOT 
  394. by sending the answer using graf_mkstate()!
  395.  
  396.   Word 3:   AES window handle
  397.   Word 4:   X position of mouse
  398.   Word 5:   Y position of mouse
  399.   Word 6+7: Pointer to the string including the object names
  400.  
  401.  
  402. AV Protocol, AV_ACCWINDCLOSED
  403. ---------------------------------------------------------------------------
  404.  
  405. AV_ACCWINDCLOSED (0x4726) Server <- Client (11th November 1994)
  406.  
  407. A client shares information with Thing that it has closed one of its 
  408. windows. This only occurs if a client shuts its own window. Under single 
  409. TOS accessory windows are automatically closed on starting applications 
  410. and this message is not neccessary.
  411.  
  412.   Word 3: AES window handle
  413.  
  414.  
  415. AV Protocol, AV_COPY_DRAGGED
  416. ---------------------------------------------------------------------------
  417.  
  418. AV_COPY_DRAGGED (0x4728) Server <- Client (11th November 1994)
  419.  
  420. A client informs Thing an object, or objects, have been delivered via 
  421. VA_DRAGACCWIND ready for copying. Thing send the client a VA_COPY_COMPLETE 
  422. reply.
  423.  
  424.   Word 3:   Keyboard status on receipt of VA_DRAGACCWIND
  425.   Word 4+5: Pointer to the destination path
  426.  
  427.  
  428. AV Protocol, VA_COPY_COMPLETE
  429. ---------------------------------------------------------------------------
  430.  
  431. VA_COPY_COMPLETE (0x4729) Server -> Client (11th November 1994)
  432.  
  433. Reply to AV_COPY_DRAGGED from Thing to client.
  434.  
  435.   Word 3: 0   = Error or user initiated cancel
  436.           !=0 = Objects are copied and the directory window is updated if
  437.                 neccessary.
  438.  
  439.  
  440. AV Protocol, AV_PATH_UPDATE
  441. ---------------------------------------------------------------------------
  442.  
  443. AV_PATH_UPDATE (0x4730) Server <- Client (11th November 1994)
  444.  
  445. A client informs Thing the contents of a directory have changed. Thing 
  446. then re-reads the appropriate directories, and any sub directories, in the 
  447. given path.
  448.  
  449.   Word 3+4: Pointer to the absolute path (e.g. C:\AUTO\).
  450.  
  451.  
  452. AV Protocol, AV_WHAT_IZIT
  453. ---------------------------------------------------------------------------
  454.  
  455. AV_WHAT_IZIT (0x4732) Server <- Client (11th November 1994)
  456.  
  457. A client requests details about what is located at a certain part of
  458. the screen. Thing replies with a VA_THAT_IZIT message.
  459.  
  460.   Word 3: X coordinate
  461.   Word 4: Y coordinate
  462.  
  463.  
  464. AV Protocol, VA_THAT_IZIT
  465. ---------------------------------------------------------------------------
  466.  
  467. VA_THAT_IZIT (0x4733) Server -> Client (11th November 1994)
  468.  
  469. Reply to a AV_WHAT_IZIT enquiry.
  470.  
  471.   Word 3:   AES ID for the appropriate application
  472.   Word 4:   Object type
  473.   Word 5+6: Pointer to the object names or NULL, if no names are
  474.             available
  475.  
  476. The types are as follows:
  477.  
  478.   VA_OB_UNKNOWN   (0)  Unknown (Console window, desktop etc)
  479.   VA_OB_TRASHCAN  (1)  Gemini 'Trash Can' - not available using Thing
  480.   VA_OB_SHREDDER  (2)  Trash Can (Gemini 'Shredder')
  481.   VA_OB_CLIPBOARD (3)  Clipboard
  482.   VA_OB_FILE      (4)  File
  483.   VA_OB_FOLDER    (5)  Folder or directory window background
  484.   VA_OB_DRIVE     (6)  Drive
  485.   VA_OB_WINDOW    (7)  Window belonging to another application
  486.  
  487.  
  488. AV Protocol, AV_DRAG_ON_WINDOW
  489. ---------------------------------------------------------------------------
  490.  
  491. AV_DRAG_ON_WINDOW (0x4734) Server <- Client (11th November 1994)
  492.  
  493. A client informs Thing objects have been dropped somewhere. Thing sorts 
  494. out what's happening at the location supplied, then sends a 
  495. VA_DRAG_COMPLETE message.
  496.  
  497.   Word 3:   X mouse position
  498.   Word 4:   Y mouse position
  499.   Word 5:   Keyboard status
  500.   Word 6+7: Pointer to the string containing the names of the objects
  501.  
  502.  
  503. AV Protocol, VA_DRAG_COMPLETE
  504. ---------------------------------------------------------------------------
  505.  
  506. VA_DRAG_COMPLETE (0x4735)  Server -> Client (11th November 1994)
  507.  
  508. Reply to AV_DRAG_ON_WINDOW message.
  509.  
  510.   Word 3: 0=Nothing changed after the Drag&drop
  511.           1=The given objects were processed (copied, deleted etc.)
  512.  
  513.  
  514. AV Protocol, AV_EXIT
  515. ---------------------------------------------------------------------------
  516.  
  517. AV_EXIT (0x4736) Server <- Client (11. Nov 1994)
  518.  
  519. A client informs Thing it no longer observing the AV protocol. This 
  520. cancels all AV_ACCWINDOPEN messages too.
  521.  
  522. This message must be used, before terminating a program if the program did 
  523. use AV_PROTOKOLL!
  524.  
  525.   Word 3: AES ID of the client
  526.  
  527.  
  528. AV Protocol, AV_STARTED
  529. ---------------------------------------------------------------------------
  530.  
  531. AV_STARTED (0x4738) Server <- Client (11th November 1994)
  532.  
  533. A client informs Thing it has received and understood the VA_START message 
  534. and the reserved memory for the command line can be released.
  535.  
  536. At the moment, this message is ignored because Thing does not reserve any 
  537. extra memory for VA_START messages.
  538.  
  539.   Word 3+4: Pointer to the command line, received by VA_START
  540.  
  541.  
  542. AV Protocol, VA_FONTCHANGED
  543. ---------------------------------------------------------------------------
  544.  
  545. VA_FONTCHANGED (0x4739) Server -> Client (11th November 1994)
  546.  
  547. If one of the fonts in Thing is changed all clients, which have already 
  548. requested the font via the AV_PROTOKOLL, are informed.
  549.  
  550. Note! Unfortunately TreeView 2.4, programmed by Stephan Gerle, does not 
  551. react to this message so Thing explicitly sends TreeView (Applications 
  552. named 'TREEVIEW') a VA_FILEFONT message. This is not the ideal solution 
  553. but is a practical workaround.
  554.  
  555.   Word 3: ID of the font used for directories (vst_font)
  556.   Word 4: Size in points for font used in directories (vst_point)
  557.   Word 5: ID of the font used in the console window (vst_font)
  558.   Word 6: Size in points for font used in the console window (vst_point)
  559.  
  560.  
  561. AV Protocol, AV_XWIND
  562. ---------------------------------------------------------------------------
  563.  
  564. AV_XWIND (0x4740) Server <- Client (11th November 1994)
  565.  
  566. Thing opens a directory window, similar to AV_OPENWIND except additional 
  567. options are available:
  568.  
  569.   Word 3+4: Pointer to the path for opening directories
  570.   Word 5+6: Pointer to the mask (Wildcard) for the available files
  571.   Word 7:   Bit 0:    Use current top window, if available
  572.             Bit 1:    Use wildcard for object selection
  573.             Bit 2-15: Reserved, always 0
  574.  
  575.  
  576. AV Protocol, VA_XOPEN
  577. ---------------------------------------------------------------------------
  578.  
  579. VA_XOPEN (0x4741) Server -> Client (11th November 1994)
  580.  
  581. Reply to AV_XWIND, similar to VA_WINDOPEN.
  582.  
  583.  Word 3: 0   = Error
  584.          !=0 = Window opened and the directory completely read
  585.                i.e. a available window could be topped.
  586.  
  587.  
  588. AV Protocol, AV_VIEW
  589. ---------------------------------------------------------------------------
  590.  
  591. AV_VIEW (0x4751) Server <- Client (26th June 1995)
  592.  
  593. The server calls the viewer for a specific file. If no viewer is available 
  594. an error message is returned to the user/s.
  595.  
  596. Note! In contrast to Gemini 1.a Thing knows which applications are 
  597. installed for which filetypes. With this message Thing can start the 
  598. relevant application (e.g. a simple IMG viewer instead of a complete image 
  599. editing application).
  600.  
  601.   Word 3+4: Pointer to the names of the file to be displayed (only a
  602.             single file is allowed!)
  603.   Word 5-7: Reserved, always 0
  604.  
  605.  
  606. AV Protocol, VA_VIEWED
  607. ---------------------------------------------------------------------------
  608.  
  609. VA_VIEWED (0x4752) Server -> Client (26th June 1995)
  610.  
  611. Reply to AV_VIEW. The server informs the client whether the file will be 
  612. displayed or not. The answer is immediate and always sent out if an error 
  613. occured. Otherwise, in a multitasking background, the answer is received 
  614. as soon as the viewer is topped (made active), Under single TOS the answer 
  615. is received after exiting the viewer, in the case that the server had not 
  616. already been ended (e.g. by unloading Thing from memory before starting 
  617. the viewer -overlay mode).
  618.  
  619.   Word 3:   0=Error, 1=All OK
  620.   Word 4-7: Reserved, always 0
  621.  
  622.  
  623. AV Protocol, AV_FILEINFO
  624. ---------------------------------------------------------------------------
  625.  
  626. AV_FILEINFO (0x4753) Server <- Client (26th June 1995)
  627.  
  628. Display file/folder info. Sent as a reply to VA_FILECHANGED.
  629.  
  630.   Word 3+4: Pointer to file or folder name. Several files/folders
  631.             may be separated using space characters. Folders MUST
  632.             include a trailing backslash '\' character!
  633.   Wort 5-7: Reserved, always 0
  634.  
  635.  
  636. AV Protocol, VA_FILECHANGED
  637. ---------------------------------------------------------------------------
  638.  
  639. VA_FILECHANGED (0x4754) Server -> Client (26th June 1995)
  640.  
  641. Reply to AV_FILEINFO.
  642.  
  643.   Word 3+4: Pointer to the name of a file/folder, passed via
  644.             AV_FILEINFO, which can naturally contain a new file/folder
  645.             name.
  646.  
  647.             Example: 'C:\ANNA.TXT C:\AUTO\' was passed.
  648.                      The user changes 'ANNA.TXT' to 'ANNIE.TXT'.
  649.                      As a result the message string changes to:
  650.                      'C:\ANNIE.TXT C:\AUTO\'
  651.  
  652.   Wort 5-7: Reserved, always 0
  653.  
  654.  
  655. AV Protocol, AV_COPYFILE
  656. ---------------------------------------------------------------------------
  657.  
  658. AV_COPYFILE (0x4755) Server <- Client (26th June 1995)
  659.  
  660. Copy/move files/folders. Sent as a reply to VA_FILECOPIED.
  661.  
  662.   Word 3+4: Pointer to the source file/s and folder/s separated using
  663.             space characters. Folders must include a trailing
  664.             backslash '\' character.
  665.   Word 5+6: Pointer to the destination folder
  666.   Wort 7:   Bit 0:    Delete original (move)
  667.             Bit 1:    Rename copy
  668.             Bit 2:    Overwrite destination without comment
  669.             Bit 3-15: Reserved, always 0
  670.  
  671.  
  672. AV Protocol, VA_FILECOPIED
  673. ---------------------------------------------------------------------------
  674.  
  675. VA_FILECOPIED (0x4756) Server -> Client (26th June 1995)
  676.  
  677. Reply to AV_COPYFILE.
  678.  
  679.   Word 3:   0=Error, 1=All OK
  680.   Word 4-7: Reserved, always 0
  681.  
  682.  
  683. AV Protocol, AV_DELFILE
  684. ---------------------------------------------------------------------------
  685.  
  686. AV_DELFILE (0x4757) Server <- Client (26th June 1995)
  687.  
  688. Delete files/folders. Send as reply to VA_FILEDELETED.
  689.  
  690.   Word 3+4: Pointer to the files/folders to be deleted separated using
  691.             space characters. Folders must include a trailing
  692.             backslash '\' character.
  693.   Word 5-7: reserved, always 0
  694.  
  695.  
  696. AV Protocol, VA_FILEDELETED
  697. ---------------------------------------------------------------------------
  698.  
  699. VA_FILEDELETED (0x4758) Server -> Client (26th June 1995)
  700.  
  701. Reply to AV_DELFILE.
  702.  
  703.   Word 3:   0=Error, 1=All OK
  704.   Word 4-7: Reserved, always 0
  705.  
  706.  
  707. AV Protocol, AV_SETWINDPOS
  708. ---------------------------------------------------------------------------
  709.  
  710. AV_SETWINDPOS (0x4759) Server <- Client (26th June 1995)
  711.  
  712. An extension to AV_XWIND i.e. AV_OPENWIND remembered. With this the client 
  713. can be informed of the position and size of the next directory window 
  714. (with AV_XWIND or AV_OPENWIND) to be opened. The coordinates are given in 
  715. absolute coordinates.
  716.  
  717. Because via AV_XWIND an existing window is topped instead of a new window 
  718. being opened this message has no affect!
  719.  
  720.   Word 3:  Position X
  721.   Word 4:  Position Y
  722.   Word 5:  width
  723.   Word 6:  Height
  724.   Word 7:  Reserved, always 0
  725.  
  726.  
  727. AV Protocol, VA_PATH_UPDATE
  728. ---------------------------------------------------------------------------
  729.  
  730. VA_PATH_UPDATE (0x4760) Server -> Client (26th June 1995)
  731.  
  732. If the client has established via the AV_PROTOKOLL the Server supports 
  733. this message it informs the server whenever it changes the contents of a 
  734. directory or sub directory. The client should then re-read all affected 
  735. directories and sub directories, if necessary closing any sub directories 
  736. which no longer exist.
  737.  
  738.  Word 3+4: Pointer to the directory, which must always include a
  739.            trailing 'backslash' character.
  740.  Word 5-7: Reserved, always 0
  741.  
  742.  
  743.  
  744. Font Protocol - Originally defined by Christian Grunenberg
  745. ===========================================================================
  746. Since v0.4 Thing supports the most important functions of the Font 
  747. protocols, as defined by Christian Grunenberg.
  748.  
  749. Thing can also be installed as a font selector for other applications 
  750. although at present only ST-Guide (30/04/95 or later) supports this 
  751. option. For successful operation the following criteria must be fulfilled:
  752.  
  753.  - Thing must be running in parallel to the application - either as a
  754.    desktop accesory under single TOS or in a multitasking environment
  755.  
  756.  - The environmental variable 'FONTSELECT' must be set to 'THING'
  757.  
  758. The following is a description of the messages supported by Thing. For a 
  759. complete definition of the protocol (in German) contact Christian 
  760. Grunenberg:
  761.  
  762. Email: Christian_Grunenberg@LB.maus.de
  763.  
  764.  
  765. Font Protocol, FONT_SELECT
  766. ---------------------------------------------------------------------------
  767.  
  768. FONT_SELECT (0x7A19)  Application -> Thing
  769.  
  770. An application calls the font selector and successfully receives a 
  771. selection of fonts and sends the FONT_CHANGED reply.
  772.  
  773.   Word 3: Handle of the affected window, or negative value if the font
  774.           for all windows should be changed.
  775.   Word 4: Font ID or 0
  776.   Word 5: Font size in points
  777.   Word 6: Font colour
  778.   Word 7: Effects - Bit 0:    Bold
  779.                     Bit 1:    Light
  780.                     Bit 2:    Italics
  781.                     Bit 3:    Underlined
  782.                     Bit 4:    Outline
  783.                     Bit 5:    Shadowed
  784.                     Bit 6:    Inverse
  785.                     Bit 7-15: Reserved, always 0
  786.  
  787.  
  788. Font Protocol, FONT_CHANGED
  789. ---------------------------------------------------------------------------
  790.  
  791. FONT_CHANGED (0x7A18)  Application <- Thing
  792.  
  793. Reply to FONT_SELECT. Thing informs the application of the new values.
  794. Word 1 of the message contains the Thing application ID.
  795.  
  796. This message is also sent out by Thing if a font is Drag&Dropped onto
  797. the window of another application.
  798.  
  799.  
  800.       Install WINX under single TOS so that Thing can determine the
  801.       owner of all windows.
  802.  
  803.  
  804. Thing also accepts this message as a receiver and updates the window
  805. display as required.
  806.  
  807.  
  808.  
  809. Drag&Drop protocol - Originally introduced by Atari for MultiTOS
  810. ===========================================================================
  811. This protocol was introduced by Atari for MultiTOS and seems to be 
  812. supported by MagiC.
  813.  
  814. Thing as sender
  815. ---------------
  816. Thing automatically operates this protocol if one or more objects in a 
  817. window are Drag&Dropped onto a window belonging to another application 
  818. which doesn't belong to an AV client and wasn't opened using 
  819. AV_ACCWINDOPEN.
  820.  
  821. Thing can even 'convert' AV Drag&Drop messages (AV_DRAG_ON_WINDOW) to 
  822. Drag&Drop protocol messages! This makes it possible to search for files 
  823. using ParaFin and send the result to CoNnect via Drag&Drop...
  824.  
  825. If the receiver does not understand the Dra&Drop protocol or the system 
  826. (e.g. MagiC! v2/single TOS) does not support it then Thing tries sending a 
  827. VA_START message with the names of the Drag&Dropped objects via the 
  828. command line which so long as the system knows who owns which desktop 
  829. windows usually works. Tip! Single TOS users can use WINX.
  830.  
  831.  
  832. Thing as a receiver
  833. -------------------
  834. Due to a lack of supporting applications I haven't been able to test this 
  835. extensively. So far I have tested CAT (Maus net OLR) which can export 
  836. '.TXT'.
  837.  
  838. If a '.xxx' block is Drag&Dropped on the desktop Thing requests a path to 
  839. save the file to. If a drive etc is selected as the destination a path is 
  840. displayed as a guideline. If the block is Drag&Dropped onto the Clipboard 
  841. Thing automatically saves the data as 'SCRAP.xxx' in the Clipboard.
  842.  
  843. If a text block is dropped onto an application dialog window and the 
  844. application supports Drag&Dropped '.TXT' then the text in inserted into 
  845. the current editable field. This will only work with a few applications.
  846.  
  847. 'ARGS' blocks are handled as VA_START messages, i.e. they are passed via 
  848. the command line and simply executed.
  849.  
  850. 'PATH' blocks are still currently not supported and rejected with DD_NAK.
  851.  
  852.  
  853. About the Thing alternative desktop
  854. ===========================================================================
  855. Programmed and Copyright (c) 1994-95 Arno Welzel
  856.  
  857. Post:  Arno Welzel
  858.        Georgenstrasse 55
  859.        86152 Augsburg
  860.        Germany
  861.              
  862. Email:       aw@zaphot.augusta.de
  863.  
  864.  
  865. Overview of the main features Thing offers over to the standard desktop
  866. ---------------------------------------------------------------------------
  867. - 'Object groups' to hold several files, folders and programs in common 
  868.    windows, effectively 'mini desktops' in windows.
  869. - Full support for alternative file systems: Thing supports long and 
  870.   case-sensitive file names.
  871. - Any IMG format file can be used as background pictures on the desktop, 
  872.   either centred or 'tiled'.
  873. - 'Modern' dialog boxes in windows, many non-modal with keyboard 
  874.   shortcuts, 'Tabs', 'Drop Down Listboxes' 3D-buttons etc.
  875. - Icons at any size in a normal GEM resource file.
  876. - Support for colour and 'animated' icons.
  877. - Console window using TOS2GEM, programmed by Thomas Binder. All features 
  878.   of TOS2GEM are fully supported.
  879. - Support for TOSWIN under MiNT -so you can run TOS/TTP programs parallel 
  880.   to the desktop even under single TOS.
  881. - Support for GDOS: Bitmap and proportional fonts including all variants 
  882.   of TrueType and Speedo fonts can be used in directory windows.
  883. - Support for Let'em Fly, WINX and Freedom -including eCPX's.
  884. - Support for Kobold: Kobold 2 can be used for copying/moving/deleting 
  885.   files and formatting disks. Kobold may be called as an accessory or an 
  886.   external program. The minimum number of files or the amount of data 
  887.   before Kobold is called is user definable.
  888. - Context sensitive help using the ST-Guide hypertext system: Help is 
  889.   available at any time by pressing the [Help] key or from within dialogs 
  890.   by selecting the 'Help' button.
  891.   Help for menu entries is also available by holding down the [Control] 
  892.   key when selecting the desired menu entry.
  893. - Support for the Font protocol (as specified by Christian Grunenberg): 
  894.   Thing can be used as a 'font selector' by using the FONT_SELECT message 
  895.   or via Drag&Drop (Thing sends FONT_CHANGED to the owner of the window).
  896. - Drag&Drop protocol under MultiTOS or MagiC.
  897. - Full support for the AV protocol which offers unrivalled performance 
  898.   from supporting applications. Most of the tools designed for use with 
  899.   Gemini can also be used with Thing (e.g. ParaFin, PacShell, TreeView 
  900.   etc).
  901.  
  902. If you'd like to the real Thing send £13 Sterling along with the 
  903. registration form to:
  904.  
  905. Post:  InterActive, 65 Mill Road, Colchester, Essex, CO4 5LJ, England
  906. Email: jconnor@cix.compulink.co.uk
  907.  
  908. In return you'll receive a Master disk containing the latest version of 
  909. Thing and associated utilities along with a registration letter and 
  910. personal key to remove the Shareware reminder.
  911.  
  912. -----------------------------8<--- Cut ---8<-------------------------------
  913.  
  914. Thing Registration for v1.x
  915. ---------------------------
  916.  
  917. Name ............... :
  918. Address ............ :
  919.  
  920. Country ............ :
  921.  
  922. The following questions are not compulsory but will help us ensure future 
  923. versions of Thing meet your needs...
  924.  
  925. Email .............. :
  926.  
  927. Hardware ........... :      [ ] ST/e/Mega ST/e
  928.                             [ ] TT
  929.                             [ ] Falcon
  930.                             [ ] Other -please specify
  931.  
  932. Operating system ... :      [ ] SingleTOS (e.g. TOS 1.04, TOS 2.06)
  933.                             [ ] SingleTOS & MiNT
  934.                             [ ] MultiTOS
  935.                             [ ] MagiC -please specify version
  936.                             [ ] Atari emulation -please specify
  937.                             [ ] Other -please specify
  938.  
  939. Where did you obtain your copy of Thing?
  940.  
  941.  Internet  ......... :      [ ] Please specify
  942.  BBS/Mailbox etc ... :      [ ] Please specify
  943.  PD/Shareware library:      [ ] Please specify
  944.  Other ............. :      [ ] Please specify
  945.  
  946. Thanks in advance!
  947.  
  948. -----------------------------8<--- Cut ---8<-------------------------------
  949. EOF